Loading data as early as possible is very useful for increasing the speed of the systems. If the data is not in the cache when loaded by the program, execution must wait while the data is retrieved from memory. To help reduce this latency, the compiler can speculatively hoist a load up early in the instruction stream, before knowing for sure if the address is any good.